package thimeeeee.Model;

//import thimeeeee.Skeleton;
/*
 * Itt, az ElementBase-ben vannak az elemek default függvényei.
 * Ha valami ezektől eltér (pl: Explode() a wall-ben), akkor azt
 * az adott osztályban kell felüldefiniálni.
 */
public class ElementBase {
	private double timeStamp;
	public thimeeeee.Model.Field MyField;
	thimeeeee.Model.ElementBase _unnamed_ElementBase_;
	

    public ElementBase(){
//        Skeleton.Create("ElementBase");
    }

    // ha bomba robban a szomszédos mezőn
	public void Explode()
    {
//        Skeleton.StartFunc("ElementBase.Explode()");

		this.Kill();

//        Skeleton.EndFunc("ElementBase.Explode()", "void");
	}

    // ha valakire ráesik egy kő, vagy gyémánt
    public boolean MeetFallingElement(FallingElement e)
    {
//        Skeleton.StartFunc("ElementBase.MeetFallingElement()");

//        Skeleton.EndFunc("ElementBase.MeetFallingElement()", "null");
        return false;
    }

    // ha a szörny találkozik valamivel, ezt hívja meg rajta
	public boolean MeetBeast()
    {
//        Skeleton.StartFunc("ElementBase.MeetBeast()");

//        Skeleton.EndFunc("ElementBase.MeetBeast()", "false");
		return false;
	}

    // ha a játékos nekimegy valaminek
	public boolean MeetPlayer(Player p)
    {
//        Skeleton.StartFunc("ElementBase.MeetPlayer()");

//        Skeleton.EndFunc("ElementBase.MeetPlayer()", "false");
		return false;
	}

    public void IdleBase(double aTimeStamp)
    {
        //az idle meghívását vezérlő függvény
        //amennyiben az adott elemen a hívási körben már futott az eljárás, többször nem futtatjuk
        if (aTimeStamp > timeStamp)
        {
            timeStamp = aTimeStamp;
            this.Idle(timeStamp);
        }
    }

	public void Idle(double aTimeStamp)
    {
//		Skeleton.StartFunc("ElementBase.Idle()");

//        Skeleton.EndFunc("ElementBase.Idle()", "void");
	}

    // ha valami elpusztul
	public void Kill() 
    {
//        Skeleton.StartFunc("ElementBase.Kill()");

        this.MyField.RemoveElement(this);

//        Skeleton.EndFunc("ElementBase.Kill()", "void");
	}
}